package net.cyndeline.scalarlib.rldungeon.dgs.strategy.help

import net.cyndeline.scalarlib.rldungeon.dgs.graph.{DGSFunctionality, Room}
import scalax.collection.GraphEdge.UnDiEdge
import scalax.collection.GraphPredef.OuterEdge
import net.cyndeline.scalarlib.rldungeon.grammar.Strategy
import scalax.collection.immutable.Graph

/**
 * A strategy that always returns its input.
 *
 * @constructor Creates a new dummy strategy.
 */
class DummyStrategy[VType <: Room[VType], EType[X] <: UnDiEdge[X] with DGSFunctionality[X, EType] with OuterEdge[X, EType]]
  extends Strategy[VType, EType]  {

  def apply(initialGraph: Graph[VType, EType]): Option[Graph[VType, EType]] = Option(initialGraph)
}
